Search engines, such as Internet search engines, have been in use for some time. Such search engines permit the user to form a search query using combinations of keywords to search through a web page database containing text indices associated with one or more distinct web pages. The search engine looks for matches between the search query and text indices in the web page database, and then returns a number of hits which correspond to URL pointers and text excerpts from the web pages that represent the closest matches.
Some Internet search engines attempt to detect when a user has entered a query incorrectly. For example, the Google™ search engine employs a “Did you mean . . . ?” feature that essentially runs a spellchecker on user queries. The spellchecker attempts to detect when an entered word is misspelled by checking it against a database of common words and their misspellings. When a possible misspelling is detected, the search engine may provide to the user a prompt to invoke an alternative query in which the misspelled word is spelled correctly.
Some search engines utilize natural language processing (NLP) techniques. Some of these search engines may attempt to discern what search results the user is seeking, and return a number of hits which correspond to the URL pointers of web pages that represent the closest matches (or all of the matches sorted by some estimation of relevance). Other search engines using NLP techniques may attempt to determine the answer the user is seeking, and may attempt to determine that answer. Many NLP techniques generally far short of a human-like capacity to determine based on text what information the user seeks, much less determine an answer to the user's query.
Some semantic NLP systems also perform word sense disambiguation to identify the sense in which a word is used in a given query. Several NLP systems perform disambiguation by consulting a comprehensive body of world knowledge. This is done through hierarchies or ontologies, as well as many simple factual statements about the world. In an entity-relationship model definition, a database has two logical parts, entities and relations. Entities are defined in relation to other entities, and semantic maps are created which assist in disambiguating words based on the context in which those words are used. One problem with this approach is that a successful disambiguation requires significant processing resources. Once disambiguation is complete, and in cases in which the system does not employ disambiguation, the system expends processing resources determining an answer to the natural language (NL) query. The nature of language means that many NL queries may resolve to the same answer. Accordingly, many NL queries may result in the same answer, and the system may waste resources repeatedly generating the same answer in response to multiple received queries.